#include <ESP32Lib.h>
#include <Ressources/Font6x8.h>
#include <GfxWrapper.h>
#include <Fonts/FreeMonoBoldOblique24pt7b.h>
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include "nowTime.h"

//VGA Device
VGA6Bit vga;
GfxWrapper<VGA6Bit> gfx(vga, 312, 235);

// wifi信息
const char* ssid = "xxx";//wifi名称
const char* password = "xxxxxx";//wifi密码

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "cn.pool.ntp.org", 28800);  // 设置NTP服务器为中国的NTP服务器，时区偏移量为28800秒（北京时间）

void setup() {
  Serial.begin(115200);
  initTime();  //校准时间

  //设置分辨率，初始化vga
  Mode myMode = vga.MODE640x480.custom(312, 235);
  myMode.print<HardwareSerial>(Serial);
  vga.init(myMode, vga.VGABlackEdition);
   //显示背景图片
  // nowTime.draw(vga, 0, vga.xres / 2, vga.yres / 2);  //显示图片,draw(vga,索引,x坐标,y坐标),坐标应该是图片的中心点的坐标
  gfx.setFont(&FreeMonoBoldOblique24pt7b);  //设置字体
}

void loop() {
  timeClient.update();
  Serial.println(timeClient.getFormattedTime());
  // gfx.fillScreen(0x0000);
  gfx.fillRect(20, 80, 250, 60, 0x0000);
  nowTime.draw(vga, 0, vga.xres / 2, 50);
  gfx.setCursor(40, 123);                    //设置显示位置
  gfx.print(timeClient.getFormattedTime());  //设置显示内容
  delay(1000);
}

void initTime() {
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  timeClient.begin();

  Serial.println("Clock is ready!");
}